Loading...
2024. 10. 1. 22:38

가장 좋은 augmentation을 찾기 위한 시도들 - AutoML, Rand augmentation

1. issue  task나 dataset 종류에 따라서 잘 되는 augmentation이 다르고 적용해야하는 강도나 크기도 달라  숫자를 인식해야하는 MNIST 데이터셋의 경우 9라는 이미지를 180도 회전한 이미지로 바꾸면 6으로 인식되는데  label은 여전히 9라고 하는데 누가봐도 6으로 보이니 성능이 저하될 수 있음 capacity가 작은 모델에 학습이 어려운 augmentation을 적용하면 오히려 부담을 느껴 성능이 저하됨  2. AutoAugment 그렇다면 컴퓨터의 힘을 빌려 AutoML을 통해 task와 데이터에 최적화된 augmentation을 찾아보자   데이터로부터 data augmentation의 policy를 학습하는 모델을 만드는것 모델로부터 데이터의 특징을 잘 살려주는 au..

2024. 9. 26. 22:56

hinton의 knowledge distillation이후에 발명된 knowledge distillation들 알아보기

1. introduction 기본적으로 알고있는 hinton의 최초 distillation이 baseline knowledge distillation  teacher를 여러명 두겠다는 ensemble of teacher   triplet network를 이용한 distillation   조교 선생님도 두겠다는 teacher assistant knowledge distillation  logit이 classification에서만 사용된다는 태생적인 한계 때문에 logit 말고도 다른 것에서도 지식을 배울 수 있다면? classification 문제 말고도 분명 다른 문제에서도 지식이라는 것이 있을 것임  그래서 예를 들어 최종 layer 말고 중간 layer에서 knowledge를 뽑는 feature di..

2024. 9. 24. 20:30

knowledge distillation 자세하게

1. background  “model training과 deployment 단계에서 필요한 parameter는 다르다”  애벌레가 번데기가 되려면 다양한 환경에서 에너지와 영양소를 잘 흡수할 수 있어야함 그러나 번데기에서 나비로 어른이 될 때는 이와는 매우 다른 traveling, reproduction에 대한 요구사항이 필요함 이 때는 영양소를 흡수하는데 주력하기보다는 몸도 가볍고 생식도 잘하도록 최적화되어야함 머신러닝도 이와 마찬가지임  training 단계와 deployment 단계에서 필요로하는 요구사항이 완전히 다르다는 것임  training단계에서는 애벌레가 번데기가 되기위해 에너지를 잘 흡수하던것 처럼 주어진 대용량의 데이터로부터 구조와 지식을 잘 흡수해야함   deployment 단계에서..

2024. 9. 5. 20:47

activation function quantization에 대하여

1. introduction weight뿐만 아니라 activation에도 quantization을 적용할 수 있다 심지어 activation과 weight에 서로 다른 quantization을 적용할 수 있다 activation끼리도 서로 다른 quantization 적용이 가능하고 weight끼리도 서로 다른 quantization 적용이 가능하다   위 그림을 보면 weight에 모두 8bit로 quantization을 하고 activation 3개에는 모두 다른 16bit, 8bit, 3bit quantization을 하고 있다  2. problem activation function을 quantization하면 문제점은 계단함수가 되어 모든 구간에서 미분이 안된다는 문제점이 있다 forward ..

2024. 9. 4. 20:28

mixed precision training 자세히 공부하기

1. bit와 byte 1bit는 2가지 경우를 표현하는 정보의 단위로 0 아니면 1을 표현한다 1byte는 8bit와 같으며 몇가지를 표현할 수 있을까?  1bit가 2가지를 표현하므로 $2^{8}$가지를 표현할 수 있다 보통 자주 언급되는 bit가 정수를 어디까지 표현할 수 있을까?? 1bit가 0 아니면 1을 표현하므로 0부터 $2^{1} - 1$까지 표현한다고 말한다 2bit는 $2^{2}$가지를 표현하므로 0,1,2,3의 4가지를 생각하여 0부터 $2^{2} - 1$까지 표현한다고 말한다 비슷하게 1byte=8bit는 0부터 $2^{8} - 1$까지 음이 아닌 정수를 표현할 수 있다 음수를 포함하겠다면? 0부터 255까지 256가지를 절반으로 나눠서 128가지씩 나눠가져서  –128부터 127까..

2024. 8. 29. 22:46

Deep learning compiler란 무엇인가

1. motivation 모든 network는 기본적으로 graph로 나타낼 수 있다. C가 작성만 하면 컴퓨터가 이해하는 것이 아니고 compile 과정을 거쳐서 기계어로 최종 번역되어야 이해할 수 있다. network도 마찬가지로 그냥 GPU에서 돌아가는 것이 아니라 graph lowering 과정을 거쳐야 hardware에서 이해할 수 있다. 이러한 역할을 해주는 것이 deep learning compiler 지금까지 software측면에서 network만 주로 공부했지만 실제로 network가 CPU,GPU 같은 hardware 환경에서 돌아가기까지 생각보다 많은 일이 있다.    high level단의 pytorch 같은 것으로 만든 모델은 edge device인 edge TPU나 Jetson ..